installer: remove unrequested extras if requires_synchronization is set
#8621
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
tl;dr
poetry install --syncdoes not remove unrequestedextras(funny enoughpoetry installwithout--syncdoes remove them)installerregardingextrasLong story
Originally, I was just poking around with python-poetry/poetry-core#613 (comment). However, I noticed that all
installertests still passed if one of the following lines were removed:poetry/src/poetry/installation/installer.py
Lines 386 to 388 in f5b0228
poetry/src/poetry/installation/installer.py
Lines 394 to 395 in f5b0228
Thus, I decided to improve the test coverage before trying to fix bugs. I merged some quite similar tests and used
pytest.mark.parametrizeto cover the missing cases. However,poetry/src/poetry/installation/installer.py
Lines 386 to 388 in f5b0228
After some code spelunking, I suppose that these lines became irrelevant with ea8fb8c. However, that introduced the mentioned bug. After adding
@pytest.mark.parametrize("do_sync", [False, True])to the test and fixing the bug, the mentioned lines of code are relevant again.